home *** CD-ROM | disk | FTP | other *** search
- (*
- ===========================================================================
- BBS: Canada Remote Systems
- Date: 08-29-93 (15:41) Number: 36579
- From: KENT BRIGGS Refer#: NONE
- To: HOWARD HUANG Recvd: NO
- Subj: CHECK AVAILABLE DRIVES Conf: (1221) F-PASCAL
- ---------------------------------------------------------------------------
- -=> Quoting Howard Huang to All <=-
-
- HH> Does anyone know how to check if a drive is valid without accessing
- HH> it to see? For example, if the available drives on a system are: A, B,
- HH> C, E. How do you check if drive A is installed without having the
- HH> floppy drive lights go on. I use TP6, so if you include a sample code,
- HH> could you make it compatible with it.
-
- Howard, here's what I use:
- *)
- program show_drives;
- uses dos;
- var
- reg: registers;
- drv: array[1..3] of byte;
- drvlist: string[26];
- fcb: array[1..37] of byte;
- i: integer;
- begin
- drvlist:='';
- for i:=1 to 26 do {Try drives A..Z}
- begin
- drv[1]:=i+64; {A=ASCII 65, etc}
- drv[2]:=ord(':');
- drv[3]:=0;
- reg.ax:=$2906; {DOS function 29h = Parse Filename}
- reg.si:=ofs(drv[1]); {Point to drive string}
- reg.di:=ofs(fcb[1]); {Point to File Control Block}
- reg.ds:=dseg;
- reg.es:=dseg;
- msdos(reg); {DOS Interrupt}
- if reg.al<>$ff then drvlist:=drvlist+chr(i+64);
- end;
- writeln('Available drives = ',drvlist);
- end.
-
- ___ Blue Wave/QWK v2.12
- --- Renegade v07-17 Beta
- * Origin: Snipe's Castle BBS, Waco TX (817)-757-0169 (1:388/26)